package fr.iut2.tc1.projet.client;


import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.ui.DockPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HasVerticalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.StackPanel;
import com.google.gwt.user.client.ui.VerticalPanel;


/**
 * Classe principal du programme c'est par elle qu'est chargée toute l'application
 * on créer un menu a gauche permettant de voir globalement toutes les actions possible
 * sur les sponsors
 */
public class Joyeuxlurons implements EntryPoint {

	/**
	 * This is the entry point method.
	 */
	private static Joyeuxlurons  SINGLETON;
	private DockPanel panelPrinc;
	//acceuil et le verticalPanel qui contient les actions du home
	private VerticalPanel acceuil;
	private static ListeSponsor listSponsor;
	private  VerticalPanel controle;
	private static Affichage affichage;
	private static StackPanel toutsponsor;
	private static ImageBund monBundle;
	private HomeAction haction;
	//permet de recupérer l'image du bundle
	private Image iconPrinc;
	
	public void onModuleLoad() {
		SINGLETON = this;
		panelPrinc= new DockPanel();
		listSponsor= new ListeSponsor();
		controle= new VerticalPanel();
		affichage = new Affichage();
		toutsponsor = new StackPanel();
        monBundle = (ImageBund)GWT.create(ImageBund.class);
        acceuil= new VerticalPanel();
        String Text = new String();
        iconPrinc = new Image();
        haction = new HomeAction();	
        Text="";
		
		acceuil.add(haction);
		panelPrinc.setSize("100%", "100%");
		//acceuil.add(monBundle.home().createImage());
		iconPrinc=monBundle.home().createImage();
		Text=getHeaderString(" HOME",iconPrinc);
		toutsponsor.setSize("220px", "350px");
		toutsponsor.add(acceuil,Text,true);
		
		iconPrinc=monBundle.sponsors().createImage();
		Text=getHeaderString(" Liste de sponsors",iconPrinc);
		toutsponsor.add(listSponsor, Text,true);
		
		panelPrinc.add(toutsponsor,DockPanel.WEST);
		panelPrinc.add(affichage, DockPanel.WEST);
		
		RootPanel.get().add(panelPrinc);
		
		
}
	public static Joyeuxlurons getSINGLETON() {
		return SINGLETON;
	}
	public static Affichage getAffichage() {
		return affichage;
	}
	
	public static ListeSponsor getListSponsor() {
		return listSponsor;
	}
	/**Cette methode permet d'ajouter une icon et un texte en html 
	 * aux entéte des menus StackPanel.
	 *elle prends en paramétre une chaine de caractére et une image*/
	
	public static String getHeaderString(String text, Image image) {
		    // Add the image and text to a horizontal panel
		    HorizontalPanel hPanel = new HorizontalPanel();
		    hPanel.setSpacing(0);
		    hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
		    hPanel.add(image);
		    HTML headerText = new HTML(text);
		    //headerText.setStyleName("cw-StackPanelHeader");
		    hPanel.add(headerText);

		    // Return the HTML string for the panel
		    return hPanel.getElement().getString();
		  }

	
	
}
